package com.open.spring.utils.validate.anno;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.FIELD,ElementType.PARAMETER})
public @interface Regulation {

	/**
	 * 参数索引位置
	 */
	public int index() default -1;
	
	/**
	 * 中文名称
	 */
	public String name() default "";

	/**
	 * 暂时不支持对象参数
	 */
	public String value() default "";

	/**
	 * 正则验证
	 */
	public String regStr() default "";

	/**
	 * 是否能为空 ， 为true表示不能为空 ， false表示能够为空
	 */
	public boolean notNull() default false;

	/**
	 * 最大长度 ， 用户验证字符串
	 */
	public int maxLen() default -1;

	/**
	 * 最小长度 ， 用户验证字符串
	 */
	public int minLen() default -1;

	/**
	 * 最大值 ，用于验证数字类型数据
	 */
	public int maxVal() default -1;

	/**
	 * 最小值 ，用于验证数值类型数据
	 */
	public int minVal() default -1;
	/**
	 * 提供几种常用的正则验证
	 */
	public RegexType regexType() default RegexType.NONE;
}
